perm filename CONVER.SAI[11,ALS] blob sn#060664 filedate 1973-08-31 generic text, type T, neo UTF8
00010	BEGIN "CONVER"
00020	DEFINE ⊂="COMMENT";  ⊂ 8/24/73 Converts OLDPH headers into NEWPH format;
00030	DEFINE ⊃="⊂";  ⊂ Convert to "" to LIST ON LINE;
00040	
00050	REQUIRE "BLOCKS.HDR[4,ALS]" SOURCE_FILE;
00060	INTEGER ARRAY LFILE[0:'177];
00070	INTERNAL INTEGER ARRAY INDATA[0:255];
00080	INTERNAL INTEGER H,I,J,K,L,M,N,P,NF;
00090	INTERNAL INTEGER FLAG,CFLAG,RFLAG,UPCNT,TABTOT;
00100	INTERNAL INTEGER SEGTOT,RL,EOF,EOFA,EOFB,BRK;
00110	INTEGER CHAN1,CHAN2,CHAN3,CHAN4,CHAN5,CHAN6,CHANX;
00120	STRING READ1,READ2,READ3,FILEL,FILEI,TFILE,TFILEI,FILLST,PREHINT;
00130	INTEGER ARRAY OLDPH,NEWPH[0:63];
00140	BOOLEAN ER;
     

00010	STDBRK(1);
00020	 SETBREAK(14,"∃",NULL,"INS");
00030	 SETBREAK(15,'11&'12&'14&'15&'40,NULL,"INS");
00040	 SETBREAK(16,'56,NULL,"INA");
00050	
00060	FILEL←"LIST28";
00070	FILEI←"TOO1.DAT[1,THO]";
00080	CHAN1←1; CHAN2←2; CHAN3←3;  CHAN4←4; CHAN5←5; CHAN6←6;
00090	
00100	CLOSE(CHAN2); OPEN(CHAN2,"DSK",1,2,0,3500,BRK,EOFA);
00110	LOOKUP(CHAN2,"CONVRT.TXT",ER);  READ1←INPUT(CHAN2,14);
00120	RELEASE(CHAN2);
00130	
00140	FOR I←0 STEP 1 UNTIL 63 DO BEGIN
00150	  READ2←SCAN(READ1,1,J); IF READ2="" THEN DONE;
00160	  READ3←SCAN(READ2,15,J);
00170	  OLDPH[I]←CVSIX(READ3); ⊂  OUTSTR(CVXSTR(OLDPH[I])); ⊂ OUTSTR(TB);
00180	  NEWPH[I]←CVASC(SCAN(READ2,15,J)); ⊂  OUTSTR(CVSTR(NEWPH[I])); ⊂ OUTSTR(TB);
00190	  END;
00200	FILEL←STRIN("Data file list (LIST28) = ");
00210	IF FILEL="" THEN FILEL←"LIST28";
00220	CLOSE(CHAN5); OPEN(CHAN5,"DSK",1,2,0,3500,BRK,EOFA);
00230	LOOKUP(CHAN5,FILEL,ER);
00240	WHILE ER DO BEGIN OUTSTR(CRLF&"Can't find "&FILEL&" File = ");
00250	LOOKUP(CHAN5,FILEL←INCHWL,ER); END;
00260	FILLST←INPUT(CHAN5,14); EOFA←0; RL←0;
00270	WHILE EOFA=0 DO BEGIN "LISTREAD"
00280	FILEI←SCAN(FILLST,1,J); IF FILEI="" THEN DONE;
00290	
00300	CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00310	LOOKUP(CHAN1,FILEI,ER);
00320	 IF EOF≠0 THEN DONE;
00330	ARRYIN(CHAN1,LFILE[0],'200);	⊂ Input header;
00340	SEGTOT←(LFILE[0]*6)%256;
00350	OUTSTR(FILEI&" "&CVS(SEGTOT)&"   ");
00360	⊂ FOR I←0 STEP 1 UNTIL 127 DO OUTSTR(CVOS(LFILE[I])&TB);
00370	IF RL≠2 THEN RL←RL+1 ELSE BEGIN OUTSTR(CRLF); RL←0; END;
00380	
00390	CLOSE(CHAN2); OPEN(CHAN2,"DSK",0,0,10,0,0,EOFB);
00400	READ2←FILEI;
00410	READ1←SCAN(READ2,16,J)&"HDR"; ENTER(CHAN2,READ1,0);
00420	FOR I←21 STEP 1 UNTIL 127 DO BEGIN
00430	  IF LFILE[I]=0 THEN IF I>21 THEN DONE ELSE BEGIN OUTSTR("No data");
00440	    INCHWL; DONE;  END;
00450	  K←LDB(POINT(12,LFILE[I],11)) LSH 24;
00460	⊃ OUTSTR(CVXSTR(K)&TB);
00470	  FOR J←0 STEP 1 UNTIL 63 DO IF OLDPH[J]=K THEN DONE ELSE
00480	  IF OLDPH[J]=0 THEN BEGIN
00490	    OUTSTR("There is no new symbol for "&CVXSTR(K)&".  TYPE ONE ");
00500	    READ1←INCHWL; OLDPH[J]←K; NEWPH[J]←CVASC(READ1); END;
00510	  K←LDB(POINT(12,LFILE[I],23)); L←LDB(POINT(12,LFILE[I],35));
00520	  LFILE[I]←NEWPH[J];
00530	  DPB(K,POINT(14,LFILE[I],27)); DPB(L,POINT(8,LFILE[I],35));
00540	  OUT(CHAN2,CVSTR(NEWPH[J])&TB&CVS(LDB(POINT(14,LFILE[I],27)))&
00550	                     TB&CVS(LDB(POINT(8,LFILE[I],35)))&CRLF);
00560	⊃  OUTSTR(CVSTR(NEWPH[J]));
00570	⊃  OUTSTR(TB&CVS(LDB(POINT(14,LFILE[I],27)))&
00580	           TB&CVS(LDB(POINT(8,LFILE[I],35)))&CRLF);
00590	  END;
00600	CLOSE(CHAN2);
00610	
00620	READ2←FILEI;
00630	READ1←SCAN(READ2,16,J)&"T01";
00640	OUTSTR(READ1&TB);
00650	OPEN(CHAN4,"DSK",'10,0,10,0,0,EOFB);
00660	ENTER(CHAN4,READ1,0);
00670	ARRYOUT(CHAN4,LFILE[0],'200);
00680	WHILE EOF=0 DO BEGIN
00690	  FOR I←0 STEP 1 UNTIL 255 DO INDATA[I]←0;
00700	  ARRYIN(CHAN1,INDATA[0],256); J←0;
00710	  FOR I←0 STEP 1 UNTIL 255 DO J←J+INDATA[I]; IF J=0 THEN DONE;
00720	  ARRYOUT(CHAN4,INDATA[0],256); END; CLOSE(CHAN1); CLOSE(CHAN4);
00730	END "LISTREAD";
00740	RELEASE(CHAN1); RELEASE(CHAN2); RELEASE(CHAN3); RELEASE(CHAN6);
00750	
00760	END "CONVER";